// utils/ajax.js
// const BASE_URL = window.location.origin; // 自动获取当前域名

/**
 * 封装 Ajax 请求
 * @param {string} url - 接口地址（相对路径）
 * @param {'GET'|'POST'|'PUT'|'DELETE'} method - 请求方法
 * @param {Object} data - 请求数据体
 * @param {Function} [successCallback] - 成功回调
 * @param {Function} [errorCallback] - 失败回调
 */
function djangoAjax(config) {
    config.loading_call_back();
    return $.ajax({
        url: config.url,
        method: config.method,
        // contentType: "application/json; charset=utf-8",
        // data: JSON.stringify(formData),
        data: config.data,
        headers: {
            'X-CSRFToken': csrftoken
        },
        success: (content) => {
            console.log(content);
            config.success_call_back(content);
        },
        error: (content) => {
            config.error_call_back(content);
        }
    });
}

// 获取 Cookie 的辅助函数
function getCookie(name) {
    let cookieValue = null;
    if (document.cookie && document.cookie !== '') {
        const cookies = document.cookie.split(';');
        for (let i = 0; i < cookies.length; i++) {
            const cookie = cookies[i].trim();
            if (cookie.substring(0, name.length + 1) === (name + '=')) {
                cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                break;
            }
        }
    }
    return cookieValue;
}

// 错误处理函数
function handleHttpError(jqXHR) {
    const status = jqXHR.status;
    let errorMsg = '请求失败，请检查网络连接';

    switch (status) {
        case 401:
            errorMsg = '未授权，请重新登录';
            redirectToLogin();
            break;
        case 403:
            errorMsg = '权限不足';
            break;
        case 404:
            errorMsg = '接口不存在';
            break;
        case 500:
            errorMsg = '服务器内部错误';
            break;
    }

}


const csrftoken = getCookie('csrftoken');